/*
 * Copyright (C) 2012 Tomas Shestakov. <http://code.google.com/p/jmmo/>
 */

package jmmo.engine.property

trait Alteration extends Serializable

abstract class AddOrRemoveAlteration[+A] extends Alteration {

  def elem: A
}

case class AddAlteration[+A](elem: A) extends AddOrRemoveAlteration[A]

case class RemoveAlteration[+A](elem: A) extends AddOrRemoveAlteration[A]

case class ChangeAlteration[+A](value: A) extends Alteration
